查看原文
其他

我用过了TensorFlow、PyTorch等好几种框架,为什么还是吃不透深度学习算法?

徐彬 博文视点Broadview 2020-10-17

数据、算力和算法是人工智能的三大基石,而我们唯一可控、可学且能够学会的就是算法。本文选自《实战深度学习算法:零起点通关神经网络模型(基于Python和NumPy实现)》一书,陪你零起点通关神经网络模型!



以深度学习为代表的人工智能技术深刻地影响着我们的生活方式,从图像识别、语音识别、机器翻译到智能医诊、自动驾驶、智能风控 ······ 在多个应用领域不断地刷新纪录。

深度学习近年来之所以能取得颠覆性突破,一方面,归功于“数字化”对社会的渗透使得大量数据得以积累;另一方面,受益于单位成本下硬件算力的提升,推动了复杂模型的商用;然而最根本的,还是来自深度学习背后基础算法的巧思妙想与厚积薄发。


只有深入了解深度学习的算法原理,才能更灵活、高效地运用于实践当中。现有的深度学习框架将算法使用简化为“调包”和“调参”。降低了使用成本,然而却没有降低学习成本。

对于算法,最有效的学习方式是理解原理并动手实践。从原始论文可以查阅算法的详解和推导,却不容易复现结果。主流的深度学习框架多采用计算图模型,不容易调试或观察,对希望深入了解算法的初学者并不友好。致力于用深度学习方法创造社会价值的从业者,也需要看清底层算法的脉络,来做模型的定制、优化和改进。


《实战深度学习算法:零起点通关神经网络模型(基于Python和NumPy实现)》系统地介绍了如何用Python和NumPy一步步地实现深度学习的基础模型,无须借助TensorFlow、PyTorch等深度学习框架,帮助读者更好地理解底层算法的脉络,进而进行模型的定制、优化和改进。
本书的特点是“原理 + 实践”。按照“带着问题看算法”的逻辑来组织内容,所描述的每一种深度学习算法都围绕一个实际的目标问题展开,提供了基础算法的必要推导和实例,方便直观理解。

(扫码获取本书详情)


  • 理解深度学习主要的核心模型
  • 灵活复现重要论文、验证新方法
  • 自由替换模型中的底层算法,取得一手实验结果
  • 针对自己工作的特定场景,对算法做定制和优化,实现工程应用


第 1章  基础分类模型

1.1 深度学习简介  2
1.2 目标问题:空间中的二分类  2
1.3 感知机模型  3

感知机函数

损失函数

感知机学习算法

1.4 算法实现  8

环境搭建

数据准备

实现感知机算法 

1.5 小结  13

参考文献 

第 2章  第一个神经网络
2.1 目标问题:MNIST手写数字识别  15

数据集

图像数据和图向量

2.2 挑战:从二分类到多分类  16
2.3 Softmax方法  19
2.4 正确分类的独热编码  20
2.5 损失函数——交叉熵  21
2.6 信息熵和交叉熵  21

信息熵

交叉熵

2.7 第一个神经网络的学习算法  23
2.8 反向传播  26
2.9 抽象泄漏  27
2.10 算法实现  28

数据准备

实现第一个神经网络

实现 MINIST手写数字识别

2.11 小结  37

参考文献  38 

第 3章  多层全连接神经网络

3.1 第一个挑战:异或问题  40
3.2 更深的神经网络——隐藏层  40
3.3 第二个挑战:参数拟合的两面性  42
3.4 过拟合与正则化  44

欠拟合与过拟合

正则化

正则化的效果

3.5 第三个挑战:非线性可分问题  45
3.6 激活函数  45
3.7 算法和结构  47
3.8 算法实现  50

数据准备

实现多层全连接神经网络

在数据集上验证模型

3.9 小结  54

参考文献  54 

第 4章  卷积神经网络(CNN)

4.1 挑战:参数量和训练成本  56
4.2 卷积神经网络的结构  56

卷积层

池化层 

全连接层和 Softmax处理

4.3 卷积神经网络学习算法  63

全连接层

池化层反向传播

卷积层反向传播

4.4 算法实现  68

数据准备

卷积神经网络模型的原始实现

4.5 小结  76
参考文献  78
 

第 5章  卷积神经网络——算法提速和优化

5.1 第一个挑战:卷积神经网络的运算效率  80
5.2 提速改进  80

边缘填充提速

池化层提速

卷积层处理

5.3 反向传播算法实现  88

池化层反向传播

卷积层反向传播

5.4 第二个挑战:梯度下降的幅度和方向  91
5.5 递减学习率参数  92
5.6 学习策略的优化方法  92

动量方法

NAG方法

Adagrad方法

RMSprop方法

AdaDelta方法

Adam方法

各种优化方法的比较

5.7 总体模型结构  100
5.8 使用 CNN实现 MNIST手写数字识别验证  101
5.9 小结  102

参考文献  103

第 6章  批量规范化(Batch Normalization)

6.1 挑战:深度神经网络不易训练  105
6.2 批量规范化方法的初衷  105

数据集偏移

输入分布偏移

内部偏移

6.3 批量规范化的算法  107

训练时的前向计算

规范化与标准化变量

推理预测时的前向计算

全连接层和卷积层的批量规范化处理

6.4 批量规范化的效果  111

梯度传递问题

饱和非线性激活问题

正则化效果

6.5 批量规范化为何有效  113
6.6 批量规范化的反向传播算法  114
6.7 算法实现  115

训练时的前向传播

反向传播

推理预测

6.8 调整学习率和总体结构  119

模型结构

卷积层批量规范化的实现

引入批量规范化后的递减学习率

6.9 在 MNIST数据集上验证结果  122
6.10 小结  123

参考文献  123

第 7章  循环神经网络(Vanilla RNN)

7.1 第一个挑战:序列特征的捕捉  126
7.2 循环神经网络的结构  126

单层 RNN

双向 RNN

多层 RNN

7.3 RNN前向传播算法  130
7.4 RNN反向传播算法  131

误差的反向传播

激活函数的导函数和参数梯度

7.5 第二个挑战:循环神经网络的梯度传递问题  133
7.6 梯度裁剪  134
7.7 算法实现  135
7.8 目标问题:序列数据分析  139

数据准备

模型搭建

验证结果

7.9 小结  147

参考文献  147

第 8章  长短时记忆网络(LSTM)——指数分析

8.1 目标问题:投资市场的指数分析  150
8.2 挑战:梯度弥散问题  150
8.3 长短时记忆网络的结构  150
8.4 LSTM前向传播算法  152
8.5 LSTM反向传播算法  153

误差反向传播

激活函数的导函数和参数梯度

8.6 算法实现  156

实现 LSTM单时间步的前向计算

实现 LSTM多层多时间步的前向计算

实现 LSTM单时间步的反向传播

实现 LSTM多层多时间步的反向传播

8.7 实现沪深 300指数分析  161

数据准备

模型构建

分析结果

8.8 小结  168

参考文献  169 

第 9章  双向门控循环单元(BiGRU)——情感分析

9.1 目标问题:情感分析  171
9.2 第一个挑战:模型的运算效率  172
9.3 GRU模型的结构  172
9.4 GRU前向传播算法  173
9.5 GRU前向传播表达式的其他写法  174
9.6 GRU反向传播算法  175
9.7 GRU算法实现  177

单时间步的前向计算

实现单时间步的反向传播

9.8 用 GRU模型进行情感分析  179

数据预处理

构建情感分析模型

9.9 首次验证  182
9.10 第二个挑战:序列模型的过拟合  183
9.11 Dropout正则化  183

Dropout前向传播算法

Dropout反向传播算法

Dropout Rate的选择

9.12 再次验证:GRU+Dropout  186
9.13 第三个挑战:捕捉逆序信息  187
9.14 双向门控循环单元(BiGRU)  187
9.15 第三次验证:BiGRU+Dropout  188
9.16 小结  189

参考文献  189

附录 A向量和矩阵运算

附录 B导数和微分

附录 C向量和矩阵导数

附录 D概率论和数理统计

索引



实践是对理解进行校验和纠偏的最佳途径。有侧重地理解核心和基础的算法,实现之,有助于复现业内新发布的方法。如果结合自身场景,能够优化改进现有算法,还可以扩展已知方法的边界。




博文视点学院1元好课推荐

学院好课一元起,相伴学习尽欢喜
无论相隔几万里,落叶归根我归你

知识图谱是实现机器认知智能的基础,也是一门应用广泛的工程学科。其具体方法大都来自计算机或人工智能的其他领域,比如自然语言处理、机器学习、知识工程等。面对如此庞杂的知识,应该如何着手学习?

现在扫描下方二维码,仅需1元!《知识图谱:概念与技术》一书作者之一、复旦大学大数据学院与大数据研究院副院长阳德青老师,将为你带来一堂入门课。

(扫码报名)



不想报名也没有关系
添加下方小橘子微信,回复“免费
20+门精品课程免费等你拿

假期不停学,弯道好超车



如果喜欢本文
欢迎 在看留言分享至朋友圈 三连



  热文推荐 






▼ 点击阅读原文,获取本书详情!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存